package com.lk.springboot.utils;

/**
 * @author lk
 * @date 2020/1/26 0026 12:32
 */
public class UniversalUtil {
//    // 加密工具（异或运算）
//    public static String addSecret(String value, char secret) {
//        byte[] bt = null;
//        try{
//            value = "lking" + value + "9517linking";
//            bt = value.getBytes("UTF-8");    //将需要加密的内容转换为字节数组
//        }catch (Exception e){
//            System.out.println(e.getMessage());
//        }
//        for (int i = 0; i < bt.length; i++) {
//            bt[i] = (byte) (bt[i] ^ (int) secret);    //通过异或运算进行加密
//        }
//        String newresult = new String(bt, 0, bt.length);    //将加密后的字符串保存到 newresult 变量中
//        return newresult;
//    }
//
//    // 解密工具（异或运算）
//    public static String reduceSecret(String value, char secret) {
//        byte[] bt = null;
//        try{
//            value = value.substring(5,12);
//            bt = value.getBytes("UTF-8");    //将需要加密的内容转换为字节数组
//        }catch (Exception e){
//            System.out.println(e.getMessage());
//        }
//        for (int i = 0; i < bt.length; i++) {
//            bt[i] = (byte) (bt[i] ^ (int) secret);    //通过异或运算进行加密
//        }
//        String newresult = new String(bt, 0, bt.length);    //将加密后的字符串保存到 newresult 变量中
//        return newresult;
//    }

    /**
     * 拼图id的加密
     *
     * @param value
     * @param secret
     * @return
     */
    public static String addSecret(String value, int secret) {
        String sp_num = value.substring(2);
        int num = Integer.parseInt(sp_num) * secret + 123456789;
        return num + "";
    }

    /**
     * 拼图id的解密
     *
     * @param value
     * @param secret
     * @return
     */
    public static String reduceSecret(String value, int secret) {
        int num = (Integer.parseInt(value) - 123456789) / secret;
        return "sp" + num;
    }

    /**
     * 贡献指数计算方法
     *
     * @param sites_num
     * @return
     */
    public static int calculateDonationPoint(int sites_num) {
        int donation_point;
        if (sites_num <= 4) // 所需站点数目小于等于4，贡献度为所需站点数目加1
            donation_point = sites_num + 1;// 贡献度，贡献指数：1-5
        else // 所需站点数目大于等于 5 时，贡献度均为 5
            donation_point = 5;// 贡献度，贡献指数：1-5
        return donation_point;
    }
}
